package com.honour.service.interfaced.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.honour.service.interfaced.UserInManager;
import com.system.dao.DaoSupport;
import com.system.util.PageData;

/**
 @Function
 @Author 于泓磊
 @Date   2017年10月19日
*/

@Service("userinService")
public class UserInService implements UserInManager{
	
	
	@Resource(name = "daoSupport")
	private DaoSupport dao;

	/**
	 * 用户注册接口
	 */
	@Override
	public void save(PageData pd) throws Exception {
		dao.save("UserInMapper.save", pd);
	}

	/**
	 * 用户手机号登陆接口
	 */
	@Override
	public PageData userLoginByPhone(PageData pd) throws Exception {
		
		return (PageData) dao.findForObject("UserInMapper.findUserByPhone", pd);
	}

	/**
	 * 用户卡号登录接口
	 */
	@Override
	public PageData userLoginByCard(PageData pd) throws Exception {
		return (PageData) dao.findForObject("UserInMapper.findUserByBlackCard", pd);
	}

	/**
	 * 根据当前登录用户id获取名下所有收货列表
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getUserShipAdr(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("UserInMapper.listUserAdr", pd);
	}

	/**
	 * 添加用户收货信息
	 */
	@Override
	public void addUserShipAdr(PageData pd) throws Exception {
         dao.save("UserInMapper.saveUserAdr", pd);		
	}

	/**
	 * 修改用户收货信息
	 */
	@Override
	public void editUserShipAdr(PageData pd) throws Exception {
		dao.update("UserInMapper.editUserAdr", pd);
		
	}

	/**
	 * 删除用户收货信息
	 */
	@Override
	public void delUserShipAdr(PageData pd) throws Exception {
		dao.delete("UserInMapper.deleteUserAdr", pd);
		
	}
	
	/**
	 * 获取当前用户下的所有订单
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getUserAllOrderList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("UserInMapper.listUserAllOrder", pd);
	}

	/**
	 * 修改用户头像方法
	 */
	@Override
	public void updUserPortrait(PageData pd) throws Exception {
     		dao.update("UserInMapper.updUserPort", pd);
	}

	/**
	 * 根据用户id获取用户详细信息
	 */
	@Override
	public PageData getUserById(PageData pd) throws Exception {
		return (PageData) dao.findForObject("UserInMapper.findById", pd);
	}

	/**
	 * 根据用户id获取用户详细信息
	 */
	@Override
	public void updPersonalInfo(PageData pd) throws Exception {
		dao.update("UserInMapper.updPersonalInfo", pd);
	}

	/**
	 * 根据用户id获取用户详细信息
	 */
	@Override
	public void updEnergyScore(PageData pd) throws Exception {
		dao.update("UserInMapper.updEnergyScore", pd);
	}

	/**
	 *  获取能量值各个分值得总分
	 */
	@Override
	public PageData getEnergyScore(PageData pd) throws Exception {
		return (PageData) dao.findForObject("UserInMapper.getEnergyScore", pd);
	}

	/**
	 *  获取用户会员中心信息
	 */
	@Override
	public PageData getMemberInfo(PageData pd) throws Exception {
		return (PageData) dao.findForObject("UserInMapper.getMemberInfo", pd);
	}

	/**
	 *  获取用户会员中心会员福利信息
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getWelfareInfo(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("UserInMapper.getWelfareInfo", pd);
	}

	/**
	 *  获取我的优惠券，黑咖币，能量值 
	 */
	@Override
	public PageData getMyCouBlackEnergy(PageData pd) throws Exception {
		return (PageData) dao.findForObject("UserInMapper.getMyCouBlackEnergy", pd);
	}
	
	/**
	 *  找回登录密码 (忘记密码)
	 */
	@Override
	public PageData getUserByForget(PageData pd) throws Exception {
		return (PageData) dao.findForObject("UserInMapper.getUserByForget", pd);
	}

	/**
	 * 根据用户id查询用户头像
	 */
	@Override
	public PageData getUserPortrait(PageData pd) throws Exception {
		return (PageData) dao.findForObject("UserInMapper.getPortrait", pd);
	}

	/**
	 * 获取附近主播符合条件的经纬度
	 */
	@Override
	public PageData getTrapeze(PageData pd) throws Exception {
		return (PageData) dao.findForObject("UserInMapper.getTrapeze", pd);
	}

	
	/**
	 * 直播模块中的查询用户接口
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getLikeNickNameList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("UserInMapper.getLikeNickNameList", pd);
	}
	
	
	/**
	 * 显示直播→搜索的热门搜索
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getSearchUserByParentId(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("SearchInMapper.getSearchUserByParentId", pd);
	}

	/**
	 * 根据id获取用户头像及昵称   
	 */
	@Override
	public PageData getPortNickName(PageData pd) throws Exception {
		return (PageData) dao.findForObject("UserInMapper.getPortNick", pd);
	}

	
}
